//
//  Date+Extension.swift
//  WeiBo
//
//  Created by DDC on 2017/9/30.
//  Copyright © 2017年 DDC. All rights reserved.
//

import Foundation
/// 定义时间格式
fileprivate let formatter = DateFormatter()

/// 定义日历信息
fileprivate let calendar = Calendar.current

extension Date {
    
    /// 通过时间来返回字符串
    static func jcl_dateToString(delta:TimeInterval) -> String {
    
        let date = Date(timeIntervalSinceNow: delta)
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        return formatter.string(from: date)
    }
    
    
    /// 通过时间字符串来返回日期
    ///
    /// - Parameter string: Sun Oct 08 08:00:55 +0800 2017
    /// - Returns: 返回日期
    static func jcl_stringToDate(string:String) -> Date? {
        
        formatter.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        
        return formatter.date(from: string)
    }
    
    /// 设置根据时间日期来显示描述信息
    var jcl_description:String? {
        // 创建时间的时间差--秒为单位
        let detla = -Int(self.timeIntervalSinceNow)
        // 今天
        if calendar.isDateInToday(self) {
            
            if detla < 60 {
                return "刚刚"
            }
            if detla < 3600 {
                return "\(detla / 60) 分钟前"
            }
            
            if detla >= 3600 {
                return "\(detla / 3600) 小时前"
            }
        }
        // 其他天
        var fmt = "HH:mm"
        if calendar.isDateInYesterday(self) {
            fmt = "昨天  " + fmt
        } else {
            fmt = "MM-dd " + fmt
            
            let year = calendar.component(.year, from: self)
            let thisYear = calendar.component(.year, from: Date())
            
            if year == thisYear {
                fmt = "yyyy- " + fmt
            }
            
        }
    
        formatter.dateFormat = fmt
        return formatter.string(from: self)
    }
}
